<!DOCTYPE html>
<html lang="ko">
	<head>
		<meta charset="utf-8">

		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

		<title>04object</title>
	</head>

	<body>

	<h1>jscript03 객체</h1>
<h3>모든 것은 객체다</h3>
<p>자바스크립트에서 대부분은 객체로 취급 가능 </p>
<p>boolean,숫자,문자,날짜,수학,정규식,배열 심지어 함수까지도 객체로 생각할 수 있음.</p>
<p>객체는 특별한 종류의 자료를 가짐: 속성,메소드</p>
<p>속성 :객체명.속성</p>
<p>메소드 : 객체명.메소드</p>
<script type="text/javascript">
	var name="효주가 최고다!";
	document.write(name.length);
	document.write("<br />");
	name = "hyoju is the best lady!";
	document.write(name.toUpperCase());
</script>

<h3>사용자가 만드는 객체</h3>
<p>바로 객체를 정의해서 객체로 생성 하거나</p>	
<p>함수를 이용해서 객체를 만들 수 있음</p>
<script type="text/javascript">
	var sungjuk=new Object();
	sungjuk.name="효주";
	sungjuk.kor=99;
	sungjuk.eng=98;
	sungjuk.mat=97;
	
	
	
	sungjuk2={name:"미진",kor:99,eng:98,mat:99}; //추천
	
	function sungjuk3(name,kor,eng,mat){
		this.name=name;
		this.kor=kor;
		this.eng=eng;
		this.mat=mat;
	}
	
	var sj1=new sungjuk3("윤호",100,100,100);
	var sj2=new sungjuk3("원진",10,10,10);
	
	
	
	document.write(sungjuk.name);
	document.write(sungjuk2.name);
	document.write(sj1.name);
	document.write(sj2.name);
	
	
</script>

<h3>객체의 내용출력</h3>
<p>객체명.속성명으로 하나씩 출력할 수도 있고</p>
<p>for문을 이용해서 간편하게 출력할 수도 있음.</p>
<script type="text/javascript">
	for(x in sungjuk){
	document.write(x+"="); //속성명
	document.write(sungjuk[x]+","); //값(중요)
		}
</script>
<h3>객체의 메소드 정의</h3>
<p>객체 정의시 메소드 이름과 함께 익명함수로메소드를 정의함</p>
<script type="text/javascript">
	var sungjuk4={kor:100,eng:100,mat:100,
		getTot:function(){return this.kor+this.eng+this.mat;},
		getAvg:function(){return this.getTot()/3;},
		getGrade:function(){switch(this.getTot()/3){
				case 100: "수";break;
				case 90<100: "수";break;
				case 80<90: "우"; break;
				}
		}
		
		};
		
		
	document.write(sungjuk4.getTot());
		document.write(sungjuk4.getAvg());		
document.write(sungjuk4.getGrade());
</script>


	</body>
</html>


